#pragma once
#include "stdafx.h"
#include <Eigen/Eigen>
#include <iostream>

using namespace Eigen;
using namespace std;

//Class to define a line with 2 vertices
//Also holds an eventual ridgepoint and data concerning this edge (FTLE,Convexity etc..)
class Edge
{
public:
	Edge(void);
	Edge(MatrixXd e);
	MatrixXd getEndPoints() const;
	VectorXd getRidgePoint(); //returns ridgepoint on edge
	bool isChecked();
	bool hasRidgePoint();
	void setChecked();
	void setHasRidgePoint();
	void setRidgePoint(VectorXd rp);
	void setRidgePoint_FTLE(double f);
	void setRidgePoint_Convex(double c);
	double getRidgePoint_FTLE(); //returns ftle value at ridgepoint
	double getRidgePoint_Convex(); //returns convexity value at ridgepoint
	~Edge(void);

private:
	MatrixXd endpoint;
	VectorXd ridgepoint;
	double rp_ftle,rp_convex;
	bool checked,hasrp;
};
